package com.hyt.it.ogt.ykcj.service.exam;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hyt.it.ogt.ykcj.domain.exam.ExamSubjectInfo;
import com.hyt.it.ogt.ykcj.domain.vo.ExamSubjectVo;

import java.util.List;
import java.util.Map;

/**
 * 考试科目信息Service接口
 * 
 * @author admin
 * @date 2021-06-18
 */
public interface IExamSubjectInfoService extends IService<ExamSubjectInfo>
{
    /**
     * 查询考试科目信息
     *
     * @param id 考试科目信息ID
     * @return 考试科目信息
     */
    ExamSubjectInfo selectExamSubjectInfoById(String id);

    /**
     * 查询考试科目信息列表
     *
     * @param examSubjectInfo 考试科目信息
     * @return 考试科目信息集合
     */
    List<ExamSubjectInfo> selectExamSubjectInfoList(ExamSubjectInfo examSubjectInfo);

    /**
     * 根据考试id查询考试科目列表
     * @param examId
     * @return
     */
    List<ExamSubjectVo> selectExamSubjectInfoByExamId(String examId);

    /**
     * 获取设置分数线表头科目
     * @param examId 考试ID
     * @return 结果
     */
    List<Map<String,String>> getSettingScoreLineSubjectName(String examId);


    /**
     * 查询考试科目信息列表
     * @param examId 考试ID
     * @return 考试科目信息列表
     */
    List<ExamSubjectVo> getExamSubjectInfoList(String examId);

    /**
     * 根据考试id查询考试科目列表
     * @param examType
     * @return
     */
    List<ExamSubjectVo> selectExamSubjectInfoByExamType(String examType);

    /**
     * 批量查询科目信息
     * @param ids
     * @return
     */
    List<ExamSubjectVo> selectExamSubjectListByIds(String[] ids);

    /**
     * 根据考试id批量查询科目信息
     * @param ids
     * @return
     */
    List<ExamSubjectVo> selectExamSubjectListByExamIds(String[] ids);

    /**
     * 删除企业招聘考试的科目
     * @param subjectId
     */
    public void deleteEnterpriseSubjectById(String subjectId);


    /**
     * 获取考试科目的内容
     * @param examId
     * @return
     */
    List<ExamSubjectVo> selecSubjectList(String examId);


    /**
     * 批量查询科目
     * @return
     */
    List<ExamSubjectVo> selectExamSubjectListByExamIds(List<String> examIds);


    /**
     * 检查两个科目中时候存在考生重复
     * @param subjectIds
     */
    void examineeRepeatCheck(String subjectIds);


    /**
     * 查询考试科目信息
     * @param examId
     * @param subjectId
     * @return
     */
    List<ExamSubjectInfo> getExamSubjectInfos(String examId, String subjectId);
}
